namespace WeatherSystem.API.BackgroundJobs
{
    /// <summary>
    /// 后台作业任务执行服务接口
    /// </summary>
    public interface IBackgroundJobTaskService
    {
        /// <summary>
        /// 执行数据采集任务
        /// </summary>
        Task<JobExecutionResult> ExecuteDataCollectionAsync();

        /// <summary>
        /// 执行特定城市的数据采集
        /// </summary>
        Task<JobExecutionResult> ExecuteCityDataCollectionAsync(Guid cityId);

        /// <summary>
        /// 执行统计生成任务
        /// </summary>
        Task<JobExecutionResult> ExecuteStatisticsGenerationAsync();

        /// <summary>
        /// 执行数据清理任务
        /// </summary>
        Task<JobExecutionResult> ExecuteDataCleanupAsync();

        /// <summary>
        /// 执行天气报告生成任务
        /// </summary>
        Task<JobExecutionResult> ExecuteWeatherReportGenerationAsync(Guid cityId, DateTime startDate, DateTime endDate);

        /// <summary>
        /// 执行批量数据模拟任务
        /// </summary>
        Task<JobExecutionResult> ExecuteBulkDataSimulationAsync(int recordsPerCity, double baseTemperature);

        /// <summary>
        /// 执行缓存预热任务
        /// </summary>
        Task<JobExecutionResult> ExecuteCacheWarmupAsync();
    }
}